<?php
namespace  Entidades;
use Doctrine\Common\ClassLoader,
    Doctrine\ORM\Configuration,
    Doctrine\ORM\EntityManager,
    Doctrine\Common\Cache\ApcCache,
    Entidades\Workflow\Descripcion\Red,
    Entidades\Workflow\Descripcion\Lugar,
    Entidades\Workflow\Descripcion\Transicion,
    Entidades\Workflow\Descripcion\Arco,
    Entidades\Workflow\Documento\DocumentoTipo;
    

$dirBase = __DIR__;
    
require_once $dirBase.'/../doctrine-orm/Doctrine/Common/ClassLoader.php';


// Set up class loading. You could use different autoloaders, provided by your favorite framework,
// if you want to.
$dirDoctrine = $dirBase.'/../doctrine-orm';
$classLoader = new ClassLoader('Doctrine\ORM', realpath($dirDoctrine));

$classLoader->register();
$classLoader = new ClassLoader('Doctrine\DBAL', realpath($dirDoctrine));
$classLoader->register();
$classLoader = new ClassLoader('Doctrine\Common', realpath($dirDoctrine));
$classLoader->register();
$classLoader = new ClassLoader('Symfony', realpath($dirDoctrine.'/Symfony'));
$classLoader->register();
$classLoader = new ClassLoader('Entidades', $dirBase.'/Proyecto');
$classLoader->register();
$classLoader = new ClassLoader('Proxies', $dirBase.'/Proyecto');
$classLoader->register();


$config = new Configuration;


$cache = new ApcCache;

$config->setMetadataCacheImpl($cache);


$driverImpl = $config->newDefaultAnnotationDriver(array(__DIR__."/Proyecto/Entidades"));
$config->setMetadataDriverImpl($driverImpl);
$config->setQueryCacheImpl($cache);


// Proxy configuration
$config->setProxyDir($dirBase. '/Proyecto/Proxies');
$config->setProxyNamespace('Proxies');
$config->setMetadataCacheImpl(new \Doctrine\Common\Cache\ArrayCache);
$config->setAutoGenerateProxyClasses((APPLICATION_ENV == "development"));


$connectionOptions = array(
	    'driver' => 'pdo_mysql',
	    'dbname' => 'workflow',
	    'user' => 'p2a',
	    'password' => 'p2a',
	    'host' => 'localhost');

// Create EntityManager

$em = EntityManager::create($connectionOptions, $config);



$nombreRed = 'La primera' ;
$red = new Red();
$red->nombre = $nombreRed;

echo "<br> llego hasta crear la red";

$lugar= new Lugar();
echo "<br> llego hasta crear el lugar";
$lugar->nombre = 'lugar1';


$red->asignarLugar($lugar);



$transicion = new Transicion();
$transicion->nombre = "transicion1";



$red->asignarTransicion($transicion);



$arco = new Arco();
$arco->nombre = "blanco";
$arco->tipo = 0;
$arco->tipoDeArco = 1;
$arco->multiplicidad = 1;

echo "<br> se creo el arco";

$transicion->asociarSalida($arco);

echo "<br> se asocio la transicion";

$lugar->asociarLugarDeSalida($arco);

echo "<br> asociado el lugar";

$em->persist($red);
$em->persist($lugar);
$em->persist($transicion);
$em->persist($arco);
$em->flush();

$lista = $red->obtenerLugares();
echo "<br> hay x elementos ", count($lista);
foreach ($lista as $l) {
	echo "<br> el nombre del lugar es :", $l->nombre;
}



echo "paso hasta el final";
?>
        
